package com.pzhu.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.pzhu.pojo.User;
import com.pzhu.service.LoginService;
import com.pzhu.service.impl.LoginServiceImpl;

public class CookieLoginServlet extends HttpServlet {
	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		//设置请求和响应编码格式
		req.setCharacterEncoding("utf-8");
		resp.setContentType("text/html;charset=utf-8");
		//定义Cookie数组，获取Cookie信息
		Cookie[] cks=req.getCookies();
		//处理请求信息：如果cks不空则进行免登录处理，如果cks为空那么请求转发给page注册页面
		if(cks!=null){
			//遍历Cookie信息
			String uid1="";
			for(Cookie k:cks){
				if("uid".equals(k.getName()))
					uid1=k.getValue();
			}
			if("".equals(uid1)){
				//请求转发
				req.getRequestDispatcher("/page").forward(req, resp);
				return;
			}else{
				//校验uid1用户信息(由于主键的唯一性，Cookie中存储的是uid)
				//声明业务层对象
				LoginService ls=new LoginServiceImpl();
				//实例化业务层对象方法
				User u=ls.checkUidLoginService(uid1);
				System.out.println(u);
				//判断根据uid1查出来的u是否为空，
				//不空说明存在这个用户，Cookie免登录成功，重定向到main页面
				//u为空说明不存在这个用户，请求转发到page页面
				if(u!=null){
					//创建（获取）Session对象，并设置Session数据
					req.getSession().setAttribute("user", u);
					//重定向
					System.out.println("haha");
					resp.sendRedirect("/ss/main");
					return;
				}else{
					//请求转发
					req.getRequestDispatcher("/page").forward(req, resp);
					return;
				}
			}
		}else{
			//请求转发
			req.getRequestDispatcher("/page").forward(req, resp);
			return;
		}
	}
}
